package com.tledu.zyf.dao.impl;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

import com.tledu.zyf.dao.IUserDao;
import com.tledu.zyf.model.User;
import com.tledu.zyf.util.DBUtil;

public class UserDao implements IUserDao {

	@Override
	public User loadByUsername(String username) {
		// 分三步
		// 获取连接
		Connection connection = null;
		// 连接常量池
		PreparedStatement preparedStatement = null;
		// 返回的结果集
		ResultSet resultSet = null;
		try {
			connection = DBUtil.getConnection();
			// 插入 sql 语句
			String sql = "select * from t_user where username = ?";
			preparedStatement = connection.prepareStatement(sql);
			// 设置第一个 ? 的值
			preparedStatement.setString(1, username);
			// 执行 sql 语句
			resultSet = preparedStatement.executeQuery();
			// 设置 user 为 null 是为了节省空间,如果查询的数据为 null 那么直接返回 一个空对象
			User user = null;
			if (resultSet.next()) {
				user = new User(resultSet.getInt("id"), resultSet.getString("username"),
						resultSet.getString("password"));
			}
			return user;
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			// 倒序关闭资源 3 2 1
			DBUtil.close(resultSet);
			DBUtil.close(preparedStatement);
			DBUtil.close(connection);
		}
		return null;
	}

}
